Take a Deep Breathe論文
https://scrapbox.io/files/65a688a0f49e050023b54327.png
論文情報
タイトル:Large Language Models as Optimizers
発行日:2023年9月
著者:Chengrun Yang, Xuezhi Wang, Yifeng Lu, Hanxiao Liu, Quoc V. Le, Denny Zhou, Xinyun Chen
所属:Google DeepMind
論文のポイント
OPROというプロンプトの最適化手法を解説した論文
人間がさまざまなプロンプトを試行錯誤し、少しずつ改善していくプロセスを大規模言語モデルに担わせるようなもの
最適化問題を自然言語で記述し、問題の記述と以前の解に基づいて、新しい解を反復的に生成するよう大規模言語モデルに指示する手法
タスク精度が低い初期プロンプトから始めて、評価に含まれるすべてのLLMが最適化ツールとして機能し、反復的な最適化を通じて生成されたプロンプトのパフォーマンスを改善し、収束するまで継続する
https://scrapbox.io/files/65c7e94ee22376002445f386.png
各最適化ステップで、LLMは最適化問題の説明と以前に評価された解のペアを元に、最適化タスクに対する候補解を生成。次に、新しい解が評価され、後続の最適化プロセスのためにメタプロンプトに追加される。最適化プロセスは、LLMがより良い最適化スコアを持つ新しい解を提案できなくなるか、または最大数の最適化ステップに達したときに終了する。
結果
https://scrapbox.io/files/65c8060e52f28c0024f78dcc.png
OPROは、ほとんど全てのタスクで、空の指示から5%以上改善した。
過去の回答とスコアのペアを、ascendingにするデフォルト設定が最も正確性が高かった。
仮説として、 最適化器LLMの出力はメタプロンプトの終わりに近い過去の指示によってより影響を受けるということ
https://scrapbox.io/files/65c80d0e16d70b002598c260.png
論文を読んで感じたこと
プロンプトの微妙な変更に対するモデルパフォーマンスの感度に要注意。
例えば、GSM8KテストセットでPaLM 2-L採点者を使用した場合、「一歩ずつ考えよう。」は正確さ71.8を達成し、「問題を一緒に解決しよう。」は正確さ60.5である一方で、「この問題を一歩ずつ一緒に解決しよう。」の正確さは49.4に過ぎない。
正確さ変わりすぎ...!
だからこそ、各ステップで複数の指示を生成して最適化の安定性を向上するOPROが有効となってくる。
この時に、A-beginとあるから、以下のように指定することが大事
code:markdown
Q: {question}
A: 深呼吸をして、ステップバイステップでこの問題に取り組んでみよう。
https://scrapbox.io/files/65b1faeb2f16630025642269.png
なぜ深呼吸で性能が上がるかというと、AIモデルのトレーニングに含まれる本やウェブのQ&Aフォーラムなどには、より慎重な解決策を示す前に「一歩ずつ考えましょう」「深呼吸してみましょう」といった言葉が含まれていることが多いと考えられる。
実際にOPROを使う場合は、GitHubの通り、libbraryを使う形となる。
解説記事
AIは入力されたプロンプトに従ってさまざまな問題を解決したり、自然な応答を生成したりすることができますが、その精度はプロンプトの書き方に影響されることがわかっています。新たに、「AIに『深呼吸をして』といった人間に送るようなアドバイスを与えると問題の正答率が上昇する」ということが、Google DeepMindの研究チームによって報告されました。
一般的に、AIモデルのパフォーマンスを向上させるには、タスクの数学的定義に基づいた最適化アルゴリズムやオプティマイザーなどが用いられます。これに対してDeepMindの研究チームは、大規模言語モデルを使用して自然言語で記述された「メタプロンプト」を改善し、最適化プロセスを実行する「Optimization by PROmpting(OPRO)」という手法を考案しました。
以下の図は、OPROの仕組みを簡単に表したものです。OPROの中心となるのは「meta-prompt(メタプロンプト)」と呼ばれるアルゴリズムであり、これは過去のプロンプトが特定のタスクを解決するのにどれほど有効だったのかを評価します。これに基づいて大規模言語モデルが改善されたプロンプトを生成し、それによって得られた回答を評価してスコア付けし、さらにメタプロンプトで改善を行うという流れになっています。
https://scrapbox.io/files/65a694af5582130022a2b671.png
OPROの仕組みは、人間がさまざまなプロンプトを試行錯誤し、少しずつ改善していくプロセスを大規模言語モデルに担わせるようなものです。研究チームは、「最適化問題を正式に定義し、プログラムされたソルバーで更新ステップを導き出す代わりに、最適化問題を自然言語で記述します。そして、問題の記述と以前の解に基づいて、新しい解を反復的に生成するよう大規模言語モデルに指示します」と述べています。
研究チームは、小学校レベルの算数問題のデータセットであるGSM8Kと、多様な問題からなる推論テストデータセットのBig-Bench HardでOPROの性能をテストしました。その結果、OPROによって最適化されたプロンプトはGSM8KとBig-Bench Hardの両方で人間が設計したプロンプトを大幅に上回り、場合によっては50%を超えることが判明したと報告されています。 今回の研究で特に興味深いものだとテクノロジー系メディアのArs Technicaが指摘しているのが、「Take a deep breath and work on this problem step by step(深呼吸をして、この問題に一歩ずつ取り組もう)」というプロンプトを入力すると、Googleの大規模言語モデル・PaLM 2におけるGSM8Kの正答率が最も高くなったという点です。PaLM 2は、特別なプロンプトがなかった場合だとGSM8Kの正答率が34%にとどまりましたが、「Let’s think step by step(一歩ずつ考えよう)」と付け加えた場合は正答率が71.8%に上昇し、「深呼吸をして、この問題に一歩ずつ取り組もう」と付け加えると正答率は80.2%に達しました。
当然ながらAIは人間のように体を持っていないため、「深呼吸するといい」とアドバイスされたところで深呼吸を行うことはありません。それにもかかわらず、こうした人間らしいアドバイスがAIの精度を向上させることは、東京大学やGoogleが発表した2022年の研究でも報告されています。
Ars Technicaは、AIモデルのトレーニングに含まれる本やウェブのQ&Aフォーラムなどには、より慎重な解決策を示す前に「一歩ずつ考えましょう」「深呼吸してみましょう」といった言葉が含まれていることが多いと指摘。そのため、これらのフレーズを入力するとAIモデルがデータセット中の高品質な答えにたどり着いたり、推論や問題解決の良い例を生成したりするのに役立つ可能性があると主張しました。
概要
最適化は至る所に存在します。導関数に基づくアルゴリズムは様々な問題に対して強力なツールとなってきましたが、勾配がないために多くの実世界の応用において課題が生じています。本研究では、自然言語で最適化タスクを記述し、大規模言語モデル(LLM)を最適化ツールとして活用するシンプルかつ効果的なアプローチである「プロンプトによる最適化」(OPRO)を提案します。各最適化ステップでは、LLMが以前に生成された解とその値を含むプロンプトから新しい解を生成し、その新しい解が評価されて次の最適化ステップのためにプロンプトに追加されます。まず、線形回帰と巡回セールスマン問題におけるOPROの実例を示し、次にタスクの正確性を最大化する指示を見つけることを目的としたプロンプト最適化に移行します。さまざまなLLMを使用して、OPROによって最適化された最良のプロンプトが、GSM8Kで最大8%、Big-Bench-Hardタスクで最大50%まで、人間によって設計されたプロンプトを上回ることを実証します。 1 章 イントロダクション
最適化はあらゆる分野において重要です。多くの最適化技術は反復的です:最適化は初期解から始まり、目的関数を最適化するために解を反復的に更新します。最適化アルゴリズムは通常、決定空間とパフォーマンスの風景によって提示される特定の課題に対処するために、個々のタスクに合わせてカスタマイズする必要があります。特に導関数を使用しない最適化ではそうです。
本研究では、大規模言語モデル(LLM)を最適化ツールとして活用するシンプルかつ効果的なアプローチである「プロンプトによる最適化」(OPRO)を提案します。プロンプティング技術の進歩に伴い、LLMは様々な領域で印象的なパフォーマンスを達成しています。これらのモデルが自然言語を理解する能力は、最適化の新たな可能性を提示します:最適化問題を正式に定義し、プログラムされたソルバーで更新ステップを導き出すのではなく、最適化問題を自然言語で記述し、LLMに指示して問題の記述と以前に見つかった解に基づいて新しい解を反復的に生成させます。LLMによる最適化は、プロンプト内の問題記述を変更することによって異なるタスクへの迅速な適応を可能にし、解の望ましい特性を指定する指示を追加することで最適化プロセスをカスタマイズできます。
LLMが最適化において持つ可能性を示すために、まず数学的最適化、コンピュータサイエンス、オペレーションズリサーチなどで他の多くを基盤とする2つの典型的な最適化問題である線形回帰と巡回セールスマン問題についてのケーススタディを提示します。小規模な最適化問題において、LLMは単にプロンプティングを通じて良質な解を見つけることができ、時には手作りのヒューリスティックアルゴリズムと同等またはそれを上回ることも示します。
次に、プロンプトの最適化におけるLLMの能力を示します:最適化の目標はタスクの正確性を最大化するプロンプトを見つけることです。具体的には、タスクの入力と出力がテキスト形式の自然言語処理(NLP)タスクに焦点を当てます。LLMはプロンプトの形式に敏感であり、意味的に似ているプロンプトでもパフォーマンスが大きく異なることがあります。最適なプロンプト形式はモデル固有であり、タスク固有である可能性があります。したがって、LLMが良いパフォーマンスを達成するためには、プロンプトエンジニアリングがしばしば重要です。しかし、大きくて離散的なプロンプト空間は、特にLLMへのAPIアクセスのみが利用可能な場合、最適化において課題となります。連続および離散プロンプト最適化に関する先行研究に倣って、トレーニングセットが利用可能であり、最適化の目的値としてトレーニングの正確性を計算すると仮定します。そして、実験により、小規模なトレーニングセットでの精度についてプロンプトを最適化することが、テストセットでの高いパフォーマンスを達成するために十分であることを示します。 LLMへのプロンプトは最適化プログラムへの呼び出しとして機能し、これをメタプロンプトと呼びます。図3はその一例を示しています。
https://scrapbox.io/files/65c7e304318f80002532eecf.png
私は、それぞれに対応するスコアを持ついくつかのテキストを持っています。テキストは、スコアに基づいて昇順に配置されており、スコアが高いほど品質が良いことを示します。
テキスト:
さあ、解決しよう!
スコア:61
テキスト:
問題を解決しましょう。
スコア:63
(...さらに指示とスコアが続く...)
以下の例は、テキストをどのように適用するかを示しています:各入力で<INS>をあなたのテキストに置き換え、その入力を読んで出力を与えます。あなたの出力が与えられた出力と異なる場合、我々はあなたの出力が間違っていると言い、それらが同じである場合、あなたの出力が正しいと言います。
入力:
Q:アランナ、ベアトリックス、そしてクイーンは新学期の準備をしており、親から本をもらっています。アランナはベアトリックスよりも20冊多くの本を持っています。クイーンはアランナよりも1/5倍多くの本を持っています。ベアトリックスが30冊の本を持っている場合、3人で合計何冊の本を持っていますか?
A:<INS>
出力:140
(...さらに例が続く...)
古いものとは異なる新しいテキストを書き、できるだけ高いスコアを持つテキストを四角い括弧で書いてください。
図3:GSM8Kでの指示調整済みPaLM 2-L(PaLM 2-L-IT)を用いたプロンプト最適化の例で、生成された指示がスコアリングLLM出力の始まりの「A:」(セクション【4.1】のA_begin)に追加されます。<INS>は生成された指示が追加される位置を示します。青いテキストにはソリューション-スコアのペアが含まれ、紫のテキストは最適化タスクと出力形式を説明しており、オレンジのテキストはメタ指示です。
メタプロンプトには2つの核となる情報が含まれています。1つ目は、以前に生成されたプロンプトとそれに対応するトレーニング精度です。2つ目は、最適化問題の説明であり、興味のあるタスクを例示するためにトレーニングセットからランダムに選ばれたいくつかの例が含まれています。また、LLMが異なる部分間の関係と望ましい出力形式を理解するための指示も提供します。最近の自動プロンプト生成を行うLLMの使用に関する研究(Zhou et al., 2022b; Pryzant et al., 2023)とは異なり、当社の作業では各最適化ステップが、自然言語フィードバックに従って1つの入力プロンプトを編集する(Pryzant et al., 2023)、または新しいプロンプトが同じ意味を持つようにする(Zhou et al., 2022b)のではなく、以前に生成されたプロンプトの軌跡に基づいてテスト精度を高めることを目指した新しいプロンプトを生成します。完全な最適化軌道を利用して、OPROはLLMが最適化プロセス全体でタスク精度を改善する新しいプロンプトを徐々に生成することを可能にします。ここでは、初期のプロンプトはタスク精度が低いです。
私たちは、テキストバイソン1やPalm 2-LのPaLM-2モデルファミリー(Anil et al., 2023)、およびGPT-3.5-TurboとGPT-4のGPTモデルファミリー2を含むいくつかのLLMに関する包括的な評価を行っています。GSM8KとBig-Bench-Hardのプロンプトを最適化します。これらは推論ベンチマークであり、プロンプティング技術が顕著なパフォーマンスのブレークスルーを達成しています。タスク精度が低い初期プロンプトから始めて、評価に含まれるすべてのLLMが最適化ツールとして機能し、反復的な最適化を通じて生成されたプロンプトのパフォーマンスを改善し、収束するまで継続することを示します(図1参照)。 https://scrapbox.io/files/65c7e52f2a11c80028f9ce31.png
特に、これらのLLMは一般的に異なるスタイルの指示を生成しますが(表1参照)、ゼロショットプロンプティングでは、最良の生成された指示がPaLM 2-L(Anil et al., 2023)に適用された場合、Few-Shot CoT (Chain-of-Thought)のパフォーマンスに匹敵し、GSM8Kで最大8%、人間によって設計されたプロンプトのZero-Shotパフォーマンスを上回ります。さらに、OPROによって最適化されたプロンプトは他の同じドメインのベンチマークに移行し、顕著なパフォーマンス向上をもたらすことも観察しています。 2 OPRO: LLMを最適化器として
Figure 2はOPROの全体的なフレームワークを示しています。
https://scrapbox.io/files/65c7e94ee22376002445f386.png
Figure 2: OPROフレームワークの概要。メタプロンプトを入力として、LLMは目的関数に対する新しい解を生成し、新しい解とそのスコアが次の最適化ステップのためにメタプロンプトに追加される。メタプロンプトには、最適化プロセスを通じて得られた解とスコアのペア、タスクの自然言語による説明、および(プロンプト最適化の場合)タスクのいくつかの例題が含まれる。プロンプト最適化のメタプロンプトのサンプルは図3を参照。
各最適化ステップで、LLMは最適化問題の説明と以前に評価された解を元に、最適化タスクに対する候補解を生成します。次に、新しい解が評価され、後続の最適化プロセスのためにメタプロンプトに追加されます。最適化プロセスは、LLMがより良い最適化スコアを持つ新しい解を提案できなくなるか、または最大数の最適化ステップに達したときに終了します。まず、最適化のためのLLMの望ましい特徴を概説し、その後これらの望ましい特徴に基づいた主要な設計選択を説明します。
2.1 LLMによる最適化の望ましい特徴
自然言語の説明を利用
LLMによる最適化の主な利点は、自然言語を理解する能力にあり、これにより人々は形式的な仕様なしに最適化タスクを記述することができます。例えば、タスクの精度を最適化するプロンプトを見つけることが目標のプロンプト最適化では、タスクは高レベルのテキスト要約と入出力例を用いて記述できます。
探索と搾取のトレードオフ
探索と搾取のトレードオフは最適化において基本的な課題であり、最適化器として機能するLLMにとって、これら2つの競合する目標のバランスを取ることが重要です。これは、LLMが既に良い解が見つかっている探索空間の有望な領域を搾取すると同時に、潜在的により良い解を見逃さないように新しい探索空間の領域も探索する能力を持つべきだということを意味します。
2.2 メタプロンプトの設計
最適化器として機能するLLMへの入力として、メタプロンプトには以下の2つの必須部分が含まれます。
最適化問題の説明
最初の部分は最適化問題のテキスト説明であり、目的関数と解の制約を含みます。例えば、プロンプト最適化のために、「より高い精度を達成する新しい指示を生成する」という指示をLLMに与えることができ、私たちはそのような指示をメタプロンプト内でメタ指示として記述します。また、「指示は簡潔で一般的に適用可能であるべき」といった、生成された解の非公式な正規化としてカスタマイズされたメタ指示も提供できます。
最適化軌跡
自然言語の指示を理解するだけでなく、LLMはコンテキスト内のデモンストレーションからパターンを認識できることも示されています。私たちのメタプロンプトはこの特性を利用し、LLMに新しい解の生成のために最適化軌跡を活用するよう指示します。具体的には、最適化軌跡には過去の解とその最適化スコアが昇順でペアになって含まれます。メタプロンプトに最適化軌跡を含めることで、LLMは高スコアの解の類似点を特定し、解がどのように更新されるべきかを明示的に定義することなく、既存の良い解を基にして潜在的により良いものを構築することを奨励します。
2.3 解の生成
解の生成ステップでは、LLMはメタプロンプトを入力として新しい解を生成します。この段階で対処する主要な最適化課題は以下の通りです。
最適化の安定性
最適化プロセスにおいて、すべての解が高スコアを達成し、以前のものよりも単調に改善されるわけではありません。プロンプトへのコンテキスト学習の感度のために、特に解の空間が十分に探索されていない初期段階では、入力最適化軌跡内の低品質な解によってLLMの出力が大きく影響を受けることがあります。これは時に最適化の不安定性と大きなばらつきを引き起こします。安定性を向上させるために、私たちは各最適化ステップでLLMに複数の解を生成するように促し、LLMが同時に複数の可能性を探索し、前進する有望な方向を迅速に発見できるようにします。
探索と搾取のトレードオフ
私たちはLLMのサンプリング温度を調整し、探索と搾取のバランスを取ります。低い温度はLLMに以前に見つかった解の周辺の解空間を搾取させ、小さな適応を行わせるのに対し、高い温度はLLMに顕著に異なる解をより積極的に探索させます。
3 動機付けの例:数学的最適化
まず、LLMが数学的最適化の最適化器として機能する可能性を示します。特に、連続最適化の例として線形回帰と、離散最適化の例として巡回セールスマン問題(TSP)のケーススタディを提示します。両方のタスクで、私たちはLLMがメタプロンプトで提供された過去の最適化軌跡に基づいて小規模な問題での最適化の方向性を適切に捉えることを見ています。
3.1 線形回帰
線形回帰問題では、入力変数からの応答を確率的に最もよく説明する線形係数を見つけることが目標です。私たちは、独立変数と従属変数Xとyがともに一次元で、切片bが存在する設定を研究しています。そのため、最適化するべき二つの一次元変数w、bがあります。合成設定では、一次元変数wtrueとbtrueの真の値をサンプリングし、y = wtruex + btrue + ϵという形で50データポイントを生成します。ここでxは1から50の範囲であり、ϵは標準ガウスノイズです。
私たちの最適化は、ランダムにサンプリングされた5つの(w, b)ペアから始まります。各ステップで、私たちは最良の【20】(w, b)ペアとそれらのソートされた目的値を含むメタプロンプトを持つInstruction TuningされたLLMにプロンプトします。メタプロンプトは、目的値をさらに減少させる新しい(w, b)ペアを求めます。サンプルのメタプロンプトは付録C.1の図【19】に示されています。 https://scrapbox.io/files/65c7ef29c8454d002412a0cb.png
私たちは各ステップで最大8回メタプロンプトをプロンプトし、最適化の安定性を向上させるために各ステップで最大8つの新しい(w, b)ペアを生成します。その後、提案されたペアの目的値を評価し、履歴に追加します。私たちはブラックボックス最適化を行います:分析形式はメタプロンプトのテキストに現れません。これは、LLMがしばしば分析形式から直接解を計算できるためです。
表2は、次の最適化器LLMのうちの1つを使用した結果をまとめています:text-bison、gpt-3.5-turbo、およびgpt-4。私たちはwtrueとbtrueの3つの設定を研究しました:開始領域【10, 20】×【10, 20】内、"近くの外部"(wtrueとbtrueのそれぞれが開始領域の外側にありますが、距離は【10】未満)、および"遠くの外部"(wtrueとbtrueのそれぞれが開始領域の外側にあり、距離が【10】を超える)。私たちは以下を見ます:
https://scrapbox.io/files/65c7f0493153290024bdaff4.png
- 各モデルによって探索された一意の(w, b)ペアの数は、網羅的検索よりも少なく、これらのモデルがブラックボックス最適化を行うことができることを示しています:数字を比較し、降下方向を提案します。
- text-bisonとgpt-4モデルは収束速度においてgpt-3.5-turboを上回ります:それらはより少ないステップで最適解に到達します。gpt-4モデルはまた、探索された一意の点が少ない中で最適解を見つけることにおいても優れています。最適化軌跡をより詳しく見ると、歴史が(w, b) = (8, 7)、(w, b) = (8, 6)、および(w, b) = (8, 5)の目的値が減少していることを示している場合に、(w, b) = (8, 4)を評価のために提案する可能性が最も高いことがわかります。
- 地上の真実が開始領域から遠く離れるにつれて、すべてのモデルにとって問題が難しくなります:すべてのモデルがより多くの探索とより多くのステップを必要とします。
3.2 巡回セールスマン問題(TSP)
次に、巡回セールスマン問題(TSP)を考えます。これは、文献に提案された多数のアルゴリズムを持つ古典的な組み合わせ最適化問題であり、ヒューリスティックアルゴリズムとソルバー、および深層ニューラルネットワークのトレーニングに基づくアプローチを含みます。具体的には、n個のノードとその座標のセットが与えられた場合、TSPタスクはすべてのノードを開始ノードからトラバースし、最終的に開始ノードに戻る最短ルートを見つけることです。
LLMを使用した最適化プロセスは、5つのランダムに生成された解から開始し、各最適化ステップで最大8つの新しい解を生成します。私たちは付録C.1の図20でメタプロンプトを提示します。
https://scrapbox.io/files/65c7f0cbce0147002586cecf.png
私たちは、x座標とy座標の両方を【-100, 100】の範囲でn個のノードをサンプリングすることによって問題インスタンスを生成します。私たちはGurobiソルバー(Optimization et al., 2020)を使用してオラクル解を構築し、すべてのアプローチの最適性ギャップを計算します。ここで、最適性ギャップは、評価されたアプローチによって構築された解の距離とオラクル解によって達成された距離との差をオラクル解の距離で割ったものとして定義されます。text-bison、gpt-3.5-turbo、およびgpt-4を含む異なるLLMでOPROを評価するだけでなく、次のヒューリスティックとOPROを比較します:
- 最近傍(NN)。初期ノードから始めて、解は最近傍ヒューリスティックで構築されます:各ステップで、現在の部分解の終了ノードに最も近い距離のノードを選択し、新しい終了ノードとして追加します。すべてのノードが解に追加されるとプロセスは終了します。
- 最遠挿入(FI)。最近傍ヒューリスティックの1つの注意点は、部分解を構築する際に開始ノードと終了ノード間の距離を考慮に入れないことです。この問題に対処するために、FIは各ステップで新しいノードを部分解に挿入するコストを最適化することを目指します。新しいノードkを追加する最小挿入コストをc(k) = min(i,j) d(i, k) + d(k, j) − d(i, j)と定義します。ここで、iとjは現在のツアーの隣接ノードであり、d(·, ·)は2つのノード間の距離を表します。各ステップで、FIは最小挿入コストを最大化する新しいノードを追加します。
私たちは表3で結果を提示します。
https://scrapbox.io/files/65c7f102cd7c110024b0bbd9.png
私たちは各ノード数nについて5つの問題インスタンスをランダムに生成します。最適性ギャップを測定するだけでなく、LLMが最適解を見つけた問題では、グローバル最適解に到達するために取られた最適化ステップの数も示します。まず、gpt-4がすべての問題サイズでgpt-3.5-turboとtext-bisonを大幅に上回っていることがわかります。具体的には、小規模な問題では、gpt-4は他のLLMよりも約4倍速くグローバル最適解に到達します。大規模な問題、特にn = 50の場合でも、gpt-4はまだヒューリスティックアルゴリズムと同等の品質の解を見つける一方で、text-bisonとgpt-3.5-turboは最大20倍悪い最適性ギャップを持つ局所最適解で立ち往生します。
一方、OPROの性能は、問題のサイズが大きくなるにつれて劇的に悪化します。n = 10の場合、すべてのLLMが評価されたすべての問題で最適解を見つけますが、問題のサイズが大きくなるにつれて、OPROの最適性ギャップは急速に増加し、最遠挿入ヒューリスティックが最適性ギャップですべてのLLMを上回り始めます。
制限事項
OPROは、連続数学最適化のための最先端の勾配ベースの最適化アルゴリズムを上回るため、またはTSPのような古典的な組み合わせ最適化問題のための特化したソルバーの性能を超えるために設計されたものではありません。代わりに、目標はLLMが単にプロンプトを通じて異なる種類の目的関数を最適化し、いくつかの小規模な問題に対してグローバル最適解に達することができることを示すことです。私たちの評価は、数学最適化のためのOPROのいくつかの制限を明らかにします。具体的には、LLMのコンテキストウィンドウの長さ制限により、大規模な最適化問題の説明をプロンプトに収めることが難しくなります。例えば、高次元データを持つ線形回帰や、訪問する大量のノードを持つ巡回セールスマン問題などです。さらに、一部の目的関数の最適化風景はLLMが正しい下降方向を提案するには不安定すぎ、最適化が中途で立ち往生してしまう原因となります。私たちは付録Aで観察された失敗事例をさらに詳細に説明します。
4 アプリケーション:プロンプト最適化
次に、タスクの精度を最大化するプロンプトを見つけることが目的であるプロンプト最適化におけるOPROの有効性を示します。まず、問題の設定を紹介し、その後、メタプロンプトの設計を説明します。
4.1 問題設定
私たちは、入力と出力がテキスト形式である自然言語タスクのためのプロンプト最適化に焦点を当てます。タスクは、トレーニングセットとテストセットに分割されたデータセットとして表され、トレーニングセットは最適化プロセス中に目的値としてトレーニング精度を計算するために使用され、最適化が終了した後にテストセットでテスト精度を計算します。伝統的な最適化ではかなり大きなトレーニングセットが必要とされますが、私たちの実験では、少数またはトレーニングセットの一部(例えば、GSM8K(Cobbe et al., 2021)の3.5%、Big-Bench Hard(Suzgun et al., 2022)の20%)で十分であることを示しています。目的関数評価器は最適化されたプロンプトが適用されるLLMであり、最適化のためのLLMと同じでも異なってもかまいません。目的関数評価のためのLLMをスコアラーLLM、最適化のためのLLMを最適化器LLMと呼びます。最適化器LLMの出力は指示であり、それは各例の質問部分に連結され、スコアラーLLMをプロンプトします。指示を挿入する位置として、以下を検討します:
- Q_begin:指示は元の質問の前に追加されます。
- Q_end:指示は元の質問の後に追加されます。
- A_begin:指示はスコアラーLLMの出力の始めに追加されます。これは、プロンプトがQAペアのシーケンスとしてフォーマットされる、インストラクションチューニングされていない事前訓練済みLLMに適用可能です。これらのプロンプト形式の例を付録Bで示します。
https://scrapbox.io/files/65c7f323e2237600244602d6.png
4.2 メタプロンプトの設計
Figure 3はGSM8Kにおけるプロンプト最適化のためのメタプロンプトの例を示しています。詳細は以下の通りです。 https://scrapbox.io/files/65c7f36e84be9500257b5e80.png
最適化問題の例
問題の説明には、生成された指示のためのタスクを示すトレーニングセットからいくつかの例が含まれます。例えば、図3の入出力ペアから、これが数学の言葉の問題であることを推測できます。入出力ペアはまた、生成された指示が追加される位置を示し、これは最適化器LLMが同じスタイルの指示を生成するために不可欠です。各最適化ステップで、私たちはトレーニングセットからランダムにサンプリングしたり、前の指示が不足しているものを選択したりして、いくつか(例として三つ)のトレーニング例をメタプロンプトに追加します。
最適化軌跡
最適化軌跡には、過去の最適化ステップから生成された指示とそのスコアが含まれます。古い指示とスコアはスコアの昇順で並べられます。スコアはプロンプト最適化におけるトレーニング精度です。LLMのコンテキストの長さの制限を考慮して、メタプロンプトには最高のスコアを持つ指示のみを保持します。
メタ指示
最適化目標を説明し、モデルが上記の情報をどのように使用するかを指示する最適化器LLMへの指示であるメタ指示も追加します。メタ指示は、解析が容易な生成された指示の形式も指定する場合があります。
5 プロンプト最適化実験
このセクションでは、プロンプト最適化の評価結果を提示します。私たちの実験は、異なる組み合わせのLLM(大規模言語モデル)を最適化器および採点者として使用することで、OPROが全体的に顕著なパフォーマンス向上をもたらすことを示しています。
5.1 評価セットアップ
モデル
最適化器および採点者として使用するLLMは以下の通りです:
最適化器LLM:
事前学習済みのPaLM 2-L(Anil et al., 2023)、指示チューニングされたPaLM 2-L(PaLM 2-L-ITと表記)、text-bison、gpt-3.5-turbo、およびgpt-4。
採点者LLM
事前学習済みのPaLM 2-Lおよびtext-bison。事前学習済みのPaLM 2-Lを採点者として使用する場合、最適化器LLMはA_begin指示を生成します。text-bisonが指示チューニングされているため、text-bisonを採点者として使用する場合、最適化器LLMはQ_beginおよびQ_end指示を生成します。
ベンチマーク
私たちの主要な評価ベンチマークはGSM8K(Cobbe et al., 2021)とBig-Bench Hard(BBH)(Suzgun et al., 2022)です。GSM8Kは、7,473のトレーニングサンプルと1,319のテストサンプルを含む小学校レベルの数学の言葉の問題のベンチマークで、連鎖的思考プロンプト(Wei et al., 2022)およびゼロショット指示「一歩ずつ考えよう。」(Kojima et al., 2022)が標準的なプロンプトよりも大幅にパフォーマンスを向上させています。BBHは、算数推理を超えた幅広いトピックをカバーする23の挑戦的なBIG-Benchタスクのスイート(Srivastava et al., 2022)で、記号操作や常識推理を含みます。各タスクには合計で最大250の例が含まれます。最適化された指示の転送性を調査するために、私たちはGSM8K用に最適化された指示を他の2つの数学的推理データセット、すなわちMultiArith(Roy & Roth, 2016)およびAQuA(Ling et al., 2017)で評価します。 実装の詳細
生成された指示のパフォーマンスを評価する際、温度を0に設定し、その場合、採点者LLMは貪欲なデコーディング戦略をします。特に指定がない限り、多様で創造的な指示を生成するために最適化器LLMのデフォルトの温度を1.0に設定します。各最適化ステップで、私たちは最適化器LLMにメタプロンプトを8回提示して8つの指示を生成し、これらの指示とそのトレーニングスコアをメタプロンプトの最適化軌跡に追加します。各ステップでのメタプロンプトは、これまでの最良の20の指示とトレーニングセットから無作為に選ばれた3つの例を含みます。異なるハイパーパラメータの効果をアブレーション研究(セクション5.3)で調査します。付録C.2では、異なる最適化器LLMのための完全なメタプロンプトを提示しています。 5.2 主な結果
このセクションでは、GSM8Kと2つのBBHタスクにおけるプロンプト最適化曲線を示します。他のBBHタスクにおける曲線は付録Dに委ねられ、すべての正確さの数字を含む表は付録Eにあります。
5.2.1 GSM8K
プロンプト最適化のために、GSM8Kトレーニングセットから無作為に3.5%の例をサンプルします。最適化を通じて同じサブセットが使用されるため、中間最適化ステップで計算されるタスクの正確さは、全7,473のトレーニング例におけるトレーニングの正確さの近似値です。これは、評価コストと一般化パフォーマンスのバランスを取ります。最適化手順が終了した後、私たちは見つかった指示をGSM8Kテストセット全体で評価します。
セクション1の図1(a)は、採点者として事前学習済みのPaLM 2-Lを使用し、最適化器としてPaLM 2-L-ITを使用したプロンプト最適化曲線を示しており、初期指示は「問題を解決しよう」としています(トレーニングの正確さは60.5、以下同様)。
https://scrapbox.io/files/65c7f50dce0147002586d8ad.png
最適化曲線は、最適化プロセス全体を通じていくつかの飛躍を伴う全体的な上昇傾向を示しています。例えば:
・ステップ2での「問題について慎重に考え、一緒に解決しよう。」はトレーニングの正確さ63.2;
・ステップ4での「分解してみよう!」はトレーニングの正確さ71.3;
・ステップ5での「解決策への道を計算しよう!」はトレーニングの正確さ73.9;
・ステップ6での「数学をしよう!」はトレーニングの正確さ78.2。
最適化曲線はまた、各ステップで生成された指示の正確さのばらつきが一般に減少していることを示しており、これは最適化器LLMが最適化を通じて分布上優れた指示を生成していることを示しています。
次に、text-bisonを採点者とし、PaLM 2-L-ITを最適化器として使用してQ_begin指示を生成する結果を提示します。これは、57.1のトレーニング正確さで空の指示から始まります。図4(a)の最適化曲線は、トレーニングの正確さにおいていくつかの飛躍を含む類似の上昇傾向を示しています:
・ステップ2での「与えられた情報を使用して、次の問題を解決してください。」はトレーニングの正確さ59.8;
・ステップ3での「与えられた情報を適用し、適切な数学的操作を使用して、次の問題を解決してください。」はトレーニングの正確さ64.0;
・ステップ4での「問題を慎重に読み、与えられた情報を特定しましょう。その後、方程式を作成して未知の変数を解決しましょう。」はトレーニングの正確さ67.0;
・ステップ29での「数学の言葉の問題を一緒に解決するのはいつでも楽しいです。問題を読んで理解するために少し時間をください。その後、問題をモデル化する方程式を作成し、未知の変数を解決します。問題を理解するために役立つ図や視覚資料を使用するかもしれませんし、使用しないかもしれません。最後に、何かを提出する前に慎重に作業を確認する時間を許してください!」はトレーニングの正確さ70.1です。
注意すべきは、プロンプト最適化でOPROを200ステップ実行するのがデフォルト設定であるにもかかわらず、優れた指示を見つける目的であれば、はるかに少ないステップで済むことです。例えば、図1(a)の実験では、「数学をしよう!」をステップ6でトレーニングの正確さ78.2で見つけ、最適化曲線がまだ上向きの傾向にある時点で107ステップで見つかった「深呼吸をして、この問題を一歩ずつ解いていこう。」のトレーニングの正確さ80.2にほぼ一致します。これは、最適化曲線の飛躍が常にはるかに優れた指示が発見されたことに対応しているわけではなく、代わりにこのステップで生成された8つの指示すべての大きな質的改善によることがあります。後者は通常、前者の数ステップ後に発生します:はるかに優れた指示があるステップで発見された後、メタプロンプトは後のステップでより悪い指示を徐々に取り除き、はるかに優れたものに似た指示を生成します。メタプロンプトに保持されるトップの指示は、この手続きで徐々に改善します。メタプロンプトが高品質の指示のみをトリガーする時点で、飛躍が起こります。
最後に、図4(b)は、事前学習済みのPaLM 2-Lが最適化器LLMとしても機能し、自身の予測性能を向上させることができることを示しています。Instruction Tuningされた他の最適化器LLMと異なり、事前学習済みのPaLM 2-Lは、プロンプトが数ショット方式でフォーマットされた場合により良いパフォーマンスを発揮します。したがって、最適化を開始するために2つの初期指示を含めます:空の指示(トレーニングの正確さ32.2)と「答えは」(トレーニングの正確さ33.3)。メタプロンプトのフォーマットについては、付録Cの図21を参照してください。生成された指示は「答えは」のスタイルと同様で、ほとんどの指示が文の接頭辞として適したフレーズです。例えば、「こちらです:」(ステップ11で生成され、トレーニングの正確さ61.3)や「やってみましょう:」(ステップ13で生成され、トレーニングの正確さ75.1)などです。 https://scrapbox.io/files/65c803ff218e230025dc03c2.png
表4は、異なる採点者と最適化器LLMを使用してGSM8Kで見つかったトップの指示を要約しています。私たちは以下のことに気づきます: https://scrapbox.io/files/65c804cefb6098002752b004.png
・異なる最適化器LLMによって見つかった指示のスタイルは大きく異なります:PaLM 2-L-ITとtext-bisonのものは簡潔ですが、GPTのものは長く詳細です。
・トップの指示のいくつかに「ステップバイステップ」のフレーズが含まれているものの、他のほとんどは異なる意味内容で同等かそれ以上の正確さを達成しています。
5.2.2 BBH
BBHでは、デフォルトで空の文字列を初期指示として最適化が開始されます。採点者がPaLM 2-Lの場合、指示はA_beginに配置され、採点者がtext-bisonの場合、Q_beginに配置されます。各タスクについて、プロンプト最適化のために例の20%のサブセットを使用し、残りの例はテスト用です。指示の位置と初期化のより多くのバリアントに関する実験結果を、付録Eで示します。
https://scrapbox.io/files/65c8060e52f28c0024f78dcc.png
図5は、指示「一歩ずつ考えよう。」(Kojima et al., 2022)および空の指示と比較して、すべての23のBBHタスクにおけるタスクごとの正確さの差を視覚化しています。具体的な正確さは、付録Eの表7で提示しています。私たちは、OPROによって見つかった指示がほとんどすべてのタスクで「一歩ずつ考えよう。」を大きなマージンで上回っていることを示しています:私たちの指示は、PaLM 2-L採点者を使用して19/23タスクで5%以上、text-bison採点者を使用して15/23タスクで上回っています。
私たちのプロンプト最適化アルゴリズムはまた、ほとんどのタスクで空の出発点からの指示を5%以上改善します:PaLM 2-L採点者を使用して20/23タスク、text-bison採点者を使用して15/23タスクです。
GSM8Kと同様に、ほぼすべてのBBHタスクで最適化曲線の上向きの傾向を観察します。図6に示されています。他のBBHタスクに関するより多くの曲線については、付録Dの図23および24を参照してください。
https://scrapbox.io/files/65c8073f6f26150025db082a.png
次に、最適化の過程で見つかった指示の例をいくつか示します。「ruin_names」タスクでは、空の指示(トレーニングの正確さ64.0)から始め、text-bison採点者およびPaLM 2-L-IT最適化器を使用して、以下の指示が生成されました:
・「アーティスト名や映画名をユーモラスに編集する際には、以下のことを考慮してください:」ステップ1でトレーニングの正確さ72.0;
・「アーティスト名や映画名のユーモラスな編集を行う際、1文字以上を変更するか、似たような音の新しい単語を追加してパンを作ることができます。」ステップ18でトレーニングの正確さ80.0;
・「アーティスト/映画名のユーモラスな編集を行うには、文字を変更して音は似ているが意味が異なる新しい単語を作成します。例えば、The PoliceをThe Politeに変更したり、The AbyssをToe Abyssに、Schindler’s ListをSchindler’s Lostに変更できます
。」ステップ38でトレーニングの正確さ82.0。上記の指示は意味的に類似していますが、最適化器LLMによる言い換えが顕著な正確さの改善をもたらします。この観察をセクション5.2.3でさらに強調します。
「temporal_sequences」におけるプロンプト最適化を行う際に生成されたいくつかの指示は、以下の通りです(トレーニングの正確さ64.0で空の指示から開始):
・「この問題を解決するには、まず、その人が他のことをしていなかった時間帯を特定する必要があります。次に、その時間帯に彼らが行った場所が開いていたかどうかを確認する必要があります。もしそうなら、それが彼らがその場所に行くことができた時間帯です。」ステップ2でトレーニングの正確さ42.0;
・「人が場所に行くことができた時間帯を見つけるには、彼らが他のことをしていなかった時間帯とその場所が開いていた時間帯を特定します。これらの基準に合致する複数の時間帯がある場合、その人はこれらの時間帯のいずれかにその場所に行くことができたでしょう。」ステップ18でトレーニングの正確さ54.0;
・「人が場所に行った可能性のある時間帯を特定するには、まず、その人が他のことをしていなかったと見られるすべての時間帯とその場所が開いていた時間帯を特定します。次に、その人が他のことをしていたと見られる時間帯を除外します。残った時間帯が、その人がその場所に行くことができた可能性のある時間です。」ステップ41でトレーニングの正確さ72.0。
表5は、異なる最適化器と採点者LLMの組み合わせで「movie_recommendation」、「ruin_names」、および「temporal_sequences」タスクにおいて生成された最良の指示を示しています。再び、異なる最適化器LLMは異なるスタイルの指示を生成します。より多くのBBHタスクに関する結果については、付録Eを参照してください。
https://scrapbox.io/files/65c807cbe223760024463458.png
5.2.3 意味的に類似した指示が大きく異なる正確さを達成する場合がある
プロンプト最適化の課題の1つは、指示の微妙な変更に対するモデルパフォーマンスの感度です。例えば、GSM8KテストセットでPaLM 2-L採点者を使用した場合、「一歩ずつ考えよう。」は正確さ71.8を達成し、「問題を一緒に解決しよう。」は正確さ60.5である一方で、「この問題を一歩ずつ一緒に解決しよう。」の正確さは49.4に過ぎず、これは2つの上位の指示の意味的な組み合わせにも関わらずです。この振る舞いは、単一ステップの指示全体のばらつきと最適化中の振動を増加させ、各ステップで複数の指示を生成することで最適化の安定性を向上させる動機となります。
5.2.4 見つかった指示の転送可能性
同じドメインの異なるデータセットへの見つかったプロンプトの転送可能性を評価します。ここでは、GSM8Kで見つかったトップの指示を、他の2つの数学推理ベンチマークであるMultiArithとAQuAで評価します。表6は、これら2つのベンチマークで異なる採点者LLMを使用した場合に、私たちの最適化されたプロンプトがベースラインのプロンプトを上回ることを示しています。 https://scrapbox.io/files/65c808d1583acf00247b2911.png
5.3 アブレーション研究
すべてのアブレーション研究において、採点者としてtext-bison、最適化器としてPaLM 2-Lを使用します。評価するタスクは、GSM8K(数学推理)とBBHのsports_understanding(非数学推理)です。
メタプロンプトの設計
メタプロンプトの設計は、良好なプロンプト最適化パフォーマンスを達成する上で重要です。以下の核心的な設計選択を調査します:
過去の指示の順序
以下のオプションを比較します:(1) 最低から最高へ(私たちのデフォルト設定);(2) 最高から最低へ;(3) ランダム。図7(a)と7(b)は、デフォルト設定がより良い最終的な正確さを達成し、より速く収束することを示しています。1つの仮説は、最適化器LLMの出力はメタプロンプトの終わりに近い過去の指示によってより影響を受けるということです。これは、Zhao et al. (2021)で観察された最近傾向と一致しており、LLMはプロンプトの終わりに近いトークンを生成する傾向があると述べています。
https://scrapbox.io/files/65c80d0e16d70b002598c260.png
指示スコアの効果
正確さスコアの提示方法について、3つのオプションを比較します:(1) 正確さを整数に丸める(これは、正確さスコアを100のバケットにバケット化することと同等です(私たちのデフォルト設定));(2) 正確さを20のバケットにバケット化する;(3) 正確さを示さずに、指示のみを昇順で表示する。図7(c)と7(d)は、正確さスコアが最適化器LLMに過去の指示の品質差をより良く理解させ、その結果、最適化器LLMが入力の最適化軌跡内の最良のものに似た新しい指示を提案するのを助けることを示しています。
https://scrapbox.io/files/65c80f04718f5b00251d279f.png
例示の効果
3つのオプションを比較します:(1) タスクからの3つの例示を示す(デフォルト);(2) タスクからの10の例示を示す;(3) 例示なし。図7(e)と7(f)は、メタプロンプトで例示を提示することが重要であることを示しており、これはタスクがどのように見えるかに関する情報を提供し、最適化モデルが新しい指示をより良くフレーズするのを助けます。しかし、より多くの例示がパフォーマンスを必ずしも改善するわけではありません。通常、タスクを説明するのに少数の例示で十分です。さらに、より多くの例示を含めると、支配的な例示部分を持つより長いメタプロンプトになり、これが最適化器LLMを最適化軌跡のような他の重要なコンポーネントから逸らせる可能性があります。
https://scrapbox.io/files/65c80e96e30a08002650bc43.png
ステップごとに生成される指示の数
ミニバッチの勾配を計算することで、確率的勾配降下手順のばらつきを減少させます。同様に、各ステップで複数の指示を生成することで、LLMを使用した最適化の安定性が向上します。一方で、評価する指示の数に固定の予算がある場合、より良いパフォーマンスを達成するためには、ステップごとの指示の数をあまりにも多くしないことが重要です。これにより、過去の指示とその正確さの豊富な情報を取り入れるために、より多くの最適化ステップを許可できます。両方の側面を考慮して、図8は各ステップで1 / 2 / 4 / 8(デフォルト)/ 16の指示をサンプリングする最適化パフォーマンスを比較し、各ステップで8の指示をサンプリングすることが全体的に最良のパフォーマンスを達成することを示しています。
https://scrapbox.io/files/65c80f2a29e4c70026ca19cd.png
出発点
プロンプト最適化のための異なる初期指示の効果を研究します。私たちのデフォルト設定は、採点者LLMが(指示チューニングされた)text-bisonの場合は空の文字列から、採点者LLMが(事前学習された)PaLM 2-Lの場合はBBHタスクで空の文字列、またはGSM8Kで「問題を解決しよう。」からA_beginの指示位置で開始することです。図9(a)は、初期指示の3つのオプションを持つ採点者LLMとしてのtext-bisonのパフォーマンスを示しています:(1) 空の文字列;(2) 「次の問題を解決してください。」;または (3) 「次の問題を解決してください。」と「問題を解決しよう。」。私たちは、異なる出発点で正確さがあまり変わらないことを観察します。興味深いことに、生成された指示のスタイルも類似しています。例えば、(1)と(2)から始めたほとんどの生成された指示には、「この問題を解決する」というフレーズが含まれており、(1)からのステップ4での「この問題を一緒に解決しよう。」はトレーニングの正確さ64.8、(2)からのステップ3での「与えられた情報を使用して次の問題を解決しよう。」はトレーニングの正確さ62.8です。
https://scrapbox.io/files/65c80f747020f60023253940.png
図9(b)は、初期指示の次のオプションを持つ採点者LLMとしてのPaLM 2-Lの結果を提示しています:(1) 「問題を解決しよう。」;(2) 空の文字列;または (3) 「一歩ずつ考えよう。」。私たちは、異なる初期指示でパフォーマンスがはるかに異なること、特に最適化の初めに、を注意深く観察します。具体的には、(1)から始めると、最初の30ステップで(2)よりも優れた指示が生成されますが、(1)と(2)から最適化された指示は、通じて(3)よりも悪いです。BBHタスクで最適化器としてgpt-3.5-turboを使用し、採点者としてPaLM 2-Lを使用する場合に、空の文字列から始める(付録E.2)と「問題を解決しよう。」から始める(付録E.3)の結果を比較すると、同様の観察が得られます。(2)の最適化プロセスをより詳細に見ると、「問題を解決する」と「一歩ずつ」というフレーズがステップ5で生成された指示に現れるものの、初期指示の正確さが低い場合、最適化器LLMがメタプロンプトに提示されたより悪い指示を取り除くのにより多くのステップを必要とすることがわかります。したがって、将来の作業の1つの方向性は、より弱い出発点からの収束を加速することです。
ステップごとの多様性
最適化器LLMの温度を{0.0, 0.5, 1.0(デフォルト)、1.5、2.0}で評価します。図10は、デフォルト温度1.0が最良のパフォーマンスを達成することを示しています。具体的には、より低い温度(0.0および0.5)の最適化は探索と創造性を欠き、最適化器LLMはしばしば同じ指示で数十ステップにわたって行き詰まり、平坦な最適化曲線を引き起こします。一方、より高い温度(1.5および2.0)では、最適化器LLMはメタプロンプトに提示された過去の指示の軌跡をより頻繁に無視し、従って活用を欠き、その結果、最適化曲線には安定した上向きの傾向がありません。
https://scrapbox.io/files/65c8113eb107ad0024a2f818.png
一段階指示生成との比較
現在の反復手続きは複数のステップで実行され、各ステップで新しいバッチの解を生成します。新しいプロンプトを生成するために最適化軌跡を活用することの重要性を検証するために、最適化手続きに入ることなく全ての指示を一段階で生成するベースラインと比較します。これらの二つのアプローチをGSM8KとBBHのSports UnderstandingでPaLM 2-L-IT最適化器を用いて比較します。GSM8Kでは、採点者LLMは事前学習済みPaLM 2-Lで、初期指示は「問題を解決しよう。」です。BBHのsports_understandingでは、採点者LLMはtext-bisonで、初期指示は空の文字列です。ベースラインは一段階で50の指示を生成し、そのメタプロンプトにはタスクの例示、初期指示とその正確さ、最適化を実行するための完全なメタプロンプトと同じメタ指示のみが含まれます。その他のハイパーパラメータは同じままです。 私たちの結果は、この一段階指示生成が私たちの最適化アプローチよりもはるかに悪いパフォーマンスを示すことを示しています。具体的には:(1) GSM8Kでは、全50の中で最良の指示は依然として「問題を解決しよう。」で、トレーニング正確さは64.4、テスト正確さは60.8です。一方、私たちのアプローチ(主論文の図1(a)に相当)は、「数学をしよう!」を第5ステップで見つけ、トレーニング正確さは78.2、テスト正確さは76.3で、各ステップで8つの指示を生成しました。 (2) 同様に、BBHのsports_understandingでは、全50の中で最良の指示がトレーニング正確さ84.0、テスト正確さ80.0を達成しました。これは、第4ステップで私たちのアプローチによって見つかった指示がトレーニング正確さ88.0、テスト正確さ84.5を達成したことと比較して再び悪い結果です。
5.4 プロンプト最適化における過学習分析
簡単のため、私たちのデフォルト設定のプロンプト最適化では検証セットを設定していません。検証セットが存在する場合の実験に基づいて、この決定をしました。
過学習は、トレーニング正確さが検証/テスト正確さよりもはるかに高い結果となる可能性があります。過学習を避けることは難しいですが、各候補解(プロンプト最適化の文脈では自然言語指示)が同程度に過学習する場合、過学習はそれほど有害ではありません。この場合、より高いトレーニング正確さの解はより高い検証/テスト正確さを達成し、最終結果として最高のトレーニング正確さを持つ解を採用できます。図11は、OPROがプロンプト最適化でこのケースであることを示しています:トレーニングセットと同じサイズの検証セットを設定すると、検証正確さの曲線はプロンプト最適化設定の両方でトレーニング曲線と並行して上下に傾向します。
https://scrapbox.io/files/65c81220e30a08002650ca1f.png
もちろん、私たちのプロンプト最適化によって見つかった指示でも過学習は発生しています:表7と10では、私たちのトレーニング正確さはしばしばテスト正確さよりも5%-20%高いにもかかわらず、私たちのテストおよび全体的な正確さは依然として主に人間が書いたものよりも高いです。より大きなトレーニングセットを設定し、より少ないステップ数(早期停止)で最適化することは、過学習を減らすのに役立つかもしれません。
5.5 EVOPROMPTとの比較
プロンプト最適化に関するいくつかの同時期の研究は、LLMに既存のプロンプトの変異と交叉を明示的に行わせるメタプロンプトを提案しています(Fernando et al., 2023; Guo et al., 2023)。私たちの評価では、EvoPrompt(Guo et al., 2023)の遺伝的アルゴリズム(GA)バージョンと差分進化(DE)バージョンと私たちのアプローチを比較します。具体的には、GAメタプロンプトでは、2つのプロンプトが与えられた場合、メタプロンプトはLLMに2つのプロンプトを交叉させて新しいプロンプトを生成し、その後新しく生成されたプロンプトを変異させて最終プロンプトを生成するよう指示します。DEは、GAメタプロンプトを拡張して、変異を行う前に2つの与えられたプロンプト間の異なる部分をLLMに特定させるようにするなど、より詳細な指示を含みます。これは、OPROが過去の複数のプロンプトを含む最適化軌跡を活用するのに対し、2つの前のプロンプトのみに依存しない点で対照的です。また、OPROは、最適化問題の理解を容易にするために、例示や異なるプロンプトのタスク正確さなど、LLMにより豊富な情報を提供します。
図12は、最適化器としてgpt-3.5-turboを使用したGSM8KとBBHのsports_understandingベンチマークでの結果を提示しています。GSM8Kでは、すべてのアプローチの初期指示は「問題を解決しよう。」と「ここが答えです。」で、これらは単純で一般的です。再び、OPROのパフォーマンスは最適化ステップが進むにつれて着実に向上することが観察されます。一方、EvoPromptの両バージョンはGSM8Kでのパフォーマンスを低下させます。主な理由は、EvoPromptがプロンプト最適化のために例示を利用しないため、最適化するタスクの理解が不足していることです。この方法で、EvoPromptは良質でタスク固有の初期プロンプトに依存して最適化を行います。
https://scrapbox.io/files/65c812ab9f4de00025f09334.png
この観察を踏まえ、BBHのsports_understandingの実験では、よりタスク固有の初期指示「スポーツ理解問題を解決してください。」と「スポーツ理解の答えを教えてください。」を提供します。この場合、EvoPrompt(DE)は初期のものよりも良いプロンプトを見つけることができますが、最適化曲線はOPROよりも不安定です。これは、最適化軌跡を活用することがLLMに既存のプロンプトを改善する有望な方向を特定させるのに役立つことを示しています。
6 関連研究
プロンプト最適化
以前の研究は、タスク固有の連続ベクトルとして表されるプロンプトを最適化するソフトプロンプトチューニング方法(Lester et al., 2021; Li & Liang, 2021; Liu et al., 2021; Qin & Eisner, 2021)、および勾配誘導探索(Shin et al., 2020; Wen et al., 2023; Gao et al., 2020; Chen et al., 2023d)と強化学習(Deng et al., 2022; Zhang et al., 2023)による離散プロンプト最適化を行っています。これらのアプローチは、LLMへのAPIアクセスのみが可能な場合には適用できません。他の研究では、勾配フリーのプロンプト最適化のための編集ベースのアプローチを設計しています(Xu et al., 2022; Prasad et al., 2022)、ここでは編集は人間が定義した操作(例:フレーズの交換)(Prasad et al., 2022)または言語モデル(例:バックトランスレーション)(Xu et al., 2022)で行うことができます。最近のいくつかの研究では、プロンプト最適化のためのLLMを調査しています(Zhou et al., 2022b; Pryzant et al., 2023; Xu et al., 2023)。特に、APE: 自動プロンプトエンジニア論文は最初にLLMを使用して初期指示を生成します。その後、APEは最高の正確さを持つトップの指示を選択し、その後LLMに各個別の指示を提示して、初期指示の意味的に類似したバリアントを生成させます。APO(Pryzant et al., 2023)は、各ステップでLLMに古い指示を更新する方法に関するテキストフィードバックを生成するよう指示します。編集ベースのアプローチとは異なり、私たちの作業の最適化器LLMは、各最適化ステップで直接新しい指示を生成し、過去の指示を模倣する必要なくタスクの正確さを改善するように単に求められます。Zhou et al.(2022b)およびPryzant et al.(2023)と比較して、私たちの最適化プロセスはメタプロンプトに過去に生成された指示とそのスコアを組み込み、最適化器LLMが高品質の指示の共通パターンを発見することを可能にします。 自然言語フィードバックによるプロンプト指示
最近の研究ラインは、モデルの出力を修正するために自然言語フィードバックでプロンプト指示を行うことにより、LLMのパフォーマンスを向上させるアプローチを調査しています。これは、有害なLLM出力の削減(Bai et al., 2022; Ganguli et al., 2023)、推論の改善(Shinn et al., 2023; Madaan et al., 2023)およびコード生成パフォーマンス(Chen et al., 2023e; Olausson et al., 2023; Shinn et al., 2023; Chen et al., 2023b)、対話アプリケーション(Nair et al., 2023; Madaan et al., 2023; Yuan et al., 2023)などにおいて効果を示しています(Kim et al., 2023; Wang et al., 2023)。具体的には、Yuan et al.(2023)は、インスタンスレベルのフィードバックのコレクションからシステムレベルのフィードバックを導出するための人間ループフレームワークを開発し、それをデータの精錬に使用しています。私たちの作業では、最適化器LLMがプロンプト内の最適化軌跡を利用し、これによりLLMは類似のスコアを持つ解決策の共通の特徴を暗黙的に要約するよう求められます。私たちは、後の最適化ステップのために生成された解決策に対する明示的な自然言語フィードバックを組み込むことを将来の作業として検討しています。
最適化のための言語モデルのチューニング
いくつかの以前の作業は、言語モデルを進化的アルゴリズムの変異演算子や交叉演算子として振る舞わせるようにチューニングまたはプロンプトします。Meyerson et al.(2023)は、画像やコード生成などのタスクに対して進化的クロスオーバーを提案するために、少数ショットの例示を持つ言語モデルを利用します。Lehman et al.(2022)では、コード差分生成に訓練された大規模言語モデルを変異演算子として使用し、さらにロボットシミュレーションのSodaraceドメインでのパフォーマンスを向上させるためのファインチューニング方法を設計しています。EvoPrompting(Chen et al., 2023a)は、進化的探索とソフトプロンプトチューニングを組み合わせて、大規模言語モデルを使用してニューラルネットワークアーキテクチャを進化させます。最適化の入力として軌跡を取ることに関して、OptFormer(Chen et al., 2022)は、大規模なハイパーパラメータ最適化データのコレクションにトランスフォーマーモデルを訓練します。一方、私たちの作業は、追加の訓練なしにプロンプト指示だけで最適化を実行します。
7 結論
私たちは、LLMを最適化ツールとして活用する道を開きます。ここで、LLMは段階的に新しい解を生成し、目的関数を最適化します。まず、線形回帰と巡回セールスマン問題に対するOPROを動機づけ、次に具体的なアプリケーションとしてプロンプト最適化に進みます。私たちの評価は、LLMが過去の最適化軌跡に基づいて生成された解を段階的に改善する能力を持っていることを示しています。興味深いことに、小規模な巡回セールスマン問題では、OPROは一部の手作りのヒューリスティックアルゴリズムと同等のパフォーマンスを発揮します。プロンプト最適化のためには、最適化されたプロンプトが、GSM8KやBig-Bench Hardにおいて人間が設計したプロンプトを大幅なマージンで上回り、時には50%以上のパフォーマンス向上を達成します。
LLMを最適化に使用するための未解決の問題は、今後の研究のために開かれています。一般的に、初期化に対する敏感性を減らし、探索と利用のバランスをよりよくとる方法は依然として課題です。特に、プロンプト最適化に関しては、現在の実装の一つの限界は、最適化LLMがトレーニングセットのエラーケースを効果的に活用して、生成された指示を改善する有望な方向を推測していないことです。実験では、各最適化ステップでトレーニングセットからランダムにサンプリングするのではなく、メタプロンプトにエラーケースを含めることを試みましたが、結果は似ており、エラーケース単独では最適化LLMが誤った予測の原因を把握するのに十分な情報を提供していないことを示しています。もう一つの限界は、プロンプト最適化には最適化プロセスを導くための精度を計算するためのトレーニングセットが必要です。現在のトレーニングセットは少なくとも数十のサンプルを含んでおり、最適化されたプロンプトがトレーニングサンプルに過度に適合しないようにしています。有望な方向性は、集計された精度に加えてエラーケースに関するより豊かなフィードバックを取り入れ、最適化軌跡で高品質と低品質の生成されたプロンプトを区別する鍵となる特徴を要約することです。このような情報は、過去の生成された指示をより効率的に改善する方法について最適化LLMに情報を提供し、プロンプト最適化に必要な例のセットサイズをさらに削減する可能性があります。
この研究は、大規模言語モデルを最適化ツールとして活用する可能性を示し、その適用範囲と限界を明らかにしました。将来の研究では、これらの課題に対処し、LLMを用いた最適化の可能性をさらに拡大することが期待されます。